10044
359
Jeg er bare en nybegynder i Swift-kodning. Min idé er ret enkel, hvilket er en app med to knapper. Når der klikkes på, ændrer et tekstfelt sin tekst.
I Main.StoryBoard tilføjer jeg et tekstfelt og to knapper.
I ViewController.swift-filen. Jeg skriver som denne:
importer UIKit
klasse ViewController: UIViewController {
@IBOutlet svag var tekstfelt: UITextField!
@IBOutlet svag var-knap: UIButton!
@IBOutlet svag var knap2: UIButton!
@IBAction func action1 (_ afsender: UIButton) {
textfield.text = "du har lige klikket på button1"
}
@IBAction func action2 (_ afsender: UIButton) {
textfield.text = "du har lige klikket på button2"
}
}
Det skal være i orden. Der vises dog en fejl, der viser:
tråd1: signal SIGABRT
i fil AppDelegate.swift linje:
klasse AppDelegate: UIResponder, UIApplicationDelegate
Hvad er der galt med min kode? 
For at løse problemet skal du først rense projektet og derefter genopbygge det.
For at rense projektet skal du gå til MenuBar: Produkt -> Rengør
For at genopbygge projektet skal du blot klikke på knappen Kør som normalt.
|
Du får en SIGABRT-fejl, når du har en afbrudt stikkontakt. Klik på din visningscontroller i storyboardet, og gå til forbindelser i sidepanelet (pilsymbolet). Se om du har en ekstra stikkontakt der, en kopi eller en ekstra, der ikke er tilsluttet. Hvis det ikke er det, har du måske ikke tilsluttet dine afsætningsmuligheder korrekt til din kode.
Husk bare, at SIGABRT sker, når du prøver at ringe til en stikkontakt (knap, visning, tekstfelt osv.), Der ikke er der.
|
For mig var det ikke et afsætningsmulighed. Jeg løste problemet ved at gå til fejlen og læse, hvad den sagde. (Også Noob ..)
Dette var fejlen:
Og løsningen var her:
Bare rul op i output, og fejlen vil blive afsløret.
|
En almindelig årsag til denne type fejl er, at du muligvis har ændret navnet på din IBOutlet eller IBAction, du kan simpelthen kontrollere dette ved at gå til kildekoden.
Klik på main.storyboard, og vælg derefter open as
og vælg derefter kildekode
kildekoden åbnes
og kontroller derefter, om der er navnet på iboutlet eller ibaction, som du har ændret, hvis der er, vælg derefter delen og slet den, og opret derefter iboutlet eller ibaction.
Dette skal løse dit problem
|
I mit tilfælde fik jeg ikke fejl, bare nedbruddet i AppDelegate, og jeg var nødt til at fjerne markeringen af ​​den næste mulighed: OS_ACTIVITY_MODE, så kunne jeg få den virkelige nedbrudsårsag i min .xib-fil
Håber dette også kan hjælpe dig :)
|
Jeg havde det samme problem. Jeg lavede en knap i storyboardet og forbandt den til ViewController og slettede derefter senere knappen. Så forbindelsen var der stadig, men knappen var ikke, og så fik jeg den samme fejl som dig.
At fikse:
Gå til forbindelsesinspektøren (pilen i øverste højre hjørne på dit storyboard), og slet ubrugte forbindelser.
|
Hvis du løber ind i dette i Xcode 10, bliver du nødt til at rense, før du bygger. Eller skift til det ældre build-system. File -> Workspace Settings ... -> Build System: Legacy Build System.
|
I mit tilfælde var der ingen log overhovedet.
Min fejl var at skubbe en visningscontroller i en navigationsstak, der allerede var en del af navigationsstakken.
|
Nogle gange sker det også, når funktionen kun skal udføres i hovedtråden, så du kan rette den ved at tildele den til hovedtråden som følger: -
DispatchQueue.main.async {
din kode her
}
|
For mig skyldtes denne fejl, at jeg havde et klargøringstrin, der ikke kunne anvendes på det segment, der blev udført.
lang historie:
tilsidesætte funk forberedelse (for segue: UIStoryboardSegue, afsender: Enhver?) {
lad gosetup = segue.destination som! Opdatering
gosetup.wherefrom = opdateringsring
}
Dette blev gjort for alle segmenter, når det kun var for en. Så jeg opretter en boolean og placerer gosetup inde i den.
|
Dette er en meget almindelig fejl og kan ske af flere grunde. Det mest almindelige er, når en IBOUTLET / IBACTION, der er tilsluttet en visningscontroller i storyboardet, slettes fra den hurtige fil, men ikke fra storyboardet. Hvis dette ikke er tilfældet, skal du bruge loggen i den nederste værktøjslinje til at finde ud af, hvad fejlen er, og diagnosticere den. Du kan bruge breakpoints og debugging for at hjælpe dig med at finde fejlen.
For at finde ud af, hvordan du løser fejlen, skal du bruge denne artikel, som jeg fandt på Google: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode
|
I mit tilfælde brugte jeg RxSwift til at udføre søgning.
Jeg havde udbredt ved hjælp af en delt forekomst af en bestemt klasse inde i onNext-metoden, hvilket sandsynligvis gjorde den utilgængelig (Mutex).
Sørg for, at sådanne tilfælde kun håndteres omhyggeligt, når det er absolut nødvendigt.
I mit tilfælde brugte jeg på forhånd et par variabler til sikkert (og sekventielt) at gemme returværdierne for den delte instans metoder og genbruge dem inde i onNext-blokken.
|
Jeg havde det samme problem. I mit tilfælde overskrev jeg bare filen
GoogleService-Info.plist
på den vej:
Platform \ ios \ YOUR_APP_NAME \ Resources \ Resources
I mit tilfælde var filerne til stede uden data.
|
Meget aktivt spørgsmål. Optjen 10 omdømme for at besvare dette spørgsmål. Omdømmekravet hjælper med at beskytte dette spørgsmål mod spam og ikke-svar-aktivitet.
Er det ikke det svar, du leder efter? Gennemse andre spørgsmål, der er mærket ios hurtigt, eller stil dit eget spørgsmål.